home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / demo / mag / hLA-AP15.lha / hLA-AP15 / bonus / zdroj.lha / merge.asc < prev    next >
Text File  |  2000-05-01  |  1KB  |  71 lines

  1. ;Trideni metodou Merge
  2.  
  3. N=1000
  4. Dim pole(N)
  5. Dim pompole(N)
  6.  
  7. Statement Vypis{}
  8. SHARED pole(),N
  9. For i=0 To Int(N/10)-1
  10.   For j=1 To 10
  11.     Print pole(i*10+j)," "
  12.   Next j
  13.   NPrint ""
  14. Next i
  15. End Statement
  16.  
  17.  
  18. Statement Merge{odkad,kam}
  19. SHARED pompole(),pole()
  20.   pulka=Int((odkad+kam)/2)
  21.   If pulka>odkad Then Merge{odkad,pulka}
  22.   If pulka+1<kam Then Merge{pulka+1,kam}
  23.   i=odkad
  24.   j=pulka+1
  25.   a=1
  26.   While (j<=kam) OR (i<=pulka)
  27.     If i<=pulka
  28.       If j<=kam
  29.         If pole(i)<pole(j)
  30.           pompole(a)=pole(i)
  31.           i=i+1
  32.           a=a+1
  33.         Else
  34.           pompole(a)=pole(j)
  35.           j=j+1
  36.           a=a+1
  37.         End If
  38.       Else
  39.         pompole(a)=pole(i)
  40.         i=i+1
  41.         a=a+1
  42.       End If
  43.     Else
  44.       pompole(a)=pole(j)
  45.       j=j+1
  46.       a=a+1
  47.     End If
  48.   End While
  49. a=1
  50. For i=odkad To kam
  51.   pole(i)=pompole(a)
  52.   a=a+1
  53. Next i
  54. End Statement
  55.  
  56.  
  57. For i=1 To N
  58.   pole(i)=Int(Rnd(32000))
  59. Next i
  60.  
  61. NPrint "Nesetridene pole:"
  62. Vypis{}
  63. Merge{1,N}
  64. NPrint "Setridne pole"
  65. Vypis{}
  66. MouseWait
  67. End
  68.  
  69.  
  70.  
  71.